home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / parcs / parcs.lha / sample / queens.parcs < prev    next >
Text File  |  1992-06-08  |  1KB  |  35 lines

  1. defdomain from1to4 int{1..4}.
  2. defdomain from1to5 int{1..5}.
  3. defdomain from1to6 int{1..6}.
  4. defdomain from1to7 int{1..7}.
  5. defdomain from1to8 int{1..8}.
  6. defdomain from1to10 int{1..10}.
  7.  
  8. fourqueens([X1,X2,X3,X4]) :- from1to4(X1,X2,X3,X4),queens([X1,X2,X3,X4]).
  9. fivequeens([X1,X2,X3,X4,X5]) :- from1to5(X1,X2,X3,X4,X5),queens([X1,X2,X3,X4,X5]).
  10. sixqueens([X1,X2,X3,X4,X5,X6]) :- from1to6(X1,X2,X3,X4,X5,X6),queens([X1,X2,X3,X4,X5,X6]).
  11. sevenqueens([X1,X2,X3,X4,X5,X6,X7]) :- from1to7(X1,X2,X3,X4,X5,X6,X7),
  12.                     queens([X1,X2,X3,X4,X5,X6,X7]).
  13. eightqueens([X1,X2,X3,X4,X5,X6,X7,X8]) :- from1to8(X1,X2,X3,X4,X5,X6,X7,X8),
  14.                     queens([X1,X2,X3,X4,X5,X6,X7,X8]).
  15. tenqueens([X1,X2,X3,X4,X5,X6,X7,X8,X9,X10]) :- from1to10(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10),
  16.                     queens([X1,X2,X3,X4,X5,X6,X7,X8,X9,X10]).
  17.  
  18.  
  19. noatack4([W,X,Y,Z]) :- W!=X+1,W!=X-1,W!=Y+2,W!=Y-2,W!=Z+3,W!=Z-3,
  20.             X!=Y+1,X!=Y-1,X!=Z+2,X!=Z-2,Y!=Z+1,Y!=Z-1.
  21.  
  22.  
  23. queens([]).
  24. queens([X|Y]) :- noattack(X,Y),queens(Y).
  25.  
  26. noattack(X,Y) :- noattacks(X,Y,1).
  27. noattacks(X,[],N).
  28. noattacks(X,[Y|Z],N) :- X!=Y,X!=Y+N,X!=Y-N,N2=N+1,noattacks(X,Z,N2).
  29.  
  30. perm4([W,X,Y,Z]) :- from1to4(W,X,Y,Z),W!=X,W!=Y,W!=Z,X!=Y,X!=Z,Y!=Z.
  31.  
  32. fourqueen([W,X,Y,Z]) :- noatack4([W,X,Y,Z]),perm4([W,X,Y,Z]).
  33.  
  34.  
  35.